package com.weilx959.spt.core.interfaces;

import javafx.scene.layout.Pane;

import java.util.Map;

/**
 * 视图控制器基础接口
 *
 * @author weilx
 * @since 2024-04-16
 */
public interface Controller {
    /**
     * 获取视图控制器的根面板
     *
     * @return {@link Pane}
     */
    Pane getRootPane();

    /**
     * 当视图显示时调用
     *
     * @param config 视图控制器配置信息
     */
    default void onShow(Map<String, Object> config) {

    }

    /**
     * 当视图关闭时调用
     */
    default boolean onClose() {
        return true;
    }

    /**
     * 当视图控制器被销毁时调用
     */
    default boolean onDestroy() {
        return true;
    }
}
